Reactμ experimental_Scope 격리 κ²½κ³μ λν μ¬μΈ΅ λΆμ. κ²¬κ³ νκ³ μ μ§λ³΄μ κ°λ₯ν React μ ν리μΌμ΄μ μ μν μ΄μ , ꡬν λ°©λ², κ³ κΈ μ¬μ© μ¬λ‘λ₯Ό νꡬν©λλ€.
React experimental_Scope 격리 κ²½κ³: μ€μ½ν 컨ν μΈλ¨ΌνΈ κ΄λ¦¬ λ§μ€ν°νκΈ°
Reactλ μ»΄ν¬λνΈ κΈ°λ° λΌμ΄λΈλ¬λ¦¬λ‘μ, κ°λ°μλ€μ΄ λ μκ³ μ¬μ¬μ© κ°λ₯ν μ»΄ν¬λνΈλ₯Ό μ‘°ν©νμ¬ λ³΅μ‘ν UIλ₯Ό ꡬμΆνλλ‘ μ₯λ €ν©λλ€. νμ§λ§ μ ν리μΌμ΄μ
μ κ·λͺ¨μ 볡μ‘μ±μ΄ 컀μ§μ λ°λΌ μ΄λ¬ν μ»΄ν¬λνΈλ€μ μ€μ½νμ 컨ν
μ€νΈλ₯Ό κ΄λ¦¬νλ κ²μ μλΉν λμ μ΄ λ μ μμ΅λλ€. λ°λ‘ μ΄ μ§μ μμ Reactμ experimental_Scope 격리 κ²½κ³(Isolation Boundary)κ° μν μ ν©λλ€. μ΄ κ°λ ₯ν(μ€νμ μ΄κΈ΄ νμ§λ§) κΈ°λ₯μ μ»΄ν¬λνΈ νΈλ¦¬μ νΉμ λΆλΆμ λν μ€μ½νλ₯Ό μ μ΄νκ³ κ²©λ¦¬νλ λ©μ»€λμ¦μ μ 곡νμ¬, ν₯μλ μ±λ₯, κ°μ λ μ½λ ꡬμ±, κ·Έλ¦¬κ³ μ»¨ν
μ€νΈ μ νμ λν λ ν° μ μ΄κΆμ μ 곡ν©λλ€. μ΄ λΈλ‘κ·Έ ν¬μ€νΈμμλ μ€μ½ν 격리μ κ°λ
μ νꡬνκ³ , experimental_Scopeμ μ€μ ꡬνμ κΉμ΄ νκ³ λ€λ©°, μ μΈκ³μ μΌλ‘ κ²¬κ³ νκ³ μ μ§λ³΄μ κ°λ₯ν React μ ν리μΌμ΄μ
μ ꡬμΆνκΈ° μν κ³ κΈ μ¬μ© μ¬λ‘μ λν΄ λ
Όμν κ²μ
λλ€.
μ€μ½ν 컨ν μΈλ¨ΌνΈμ κ·Έ μ€μμ± μ΄ν΄νκΈ°
experimental_Scopeμ μΈλΆ μ¬νμ μ΄ν΄λ³΄κΈ° μ μ, μ€μ½ν 컨ν
μΈλ¨ΌνΈκ° 무μμ΄λ©° μ React κ°λ°μμ μ€μνμ§μ λν΄ λͺ
νν μ΄ν΄ν΄ λ΄
μλ€. λ³Έμ§μ μΌλ‘ μ€μ½ν 컨ν
μΈλ¨ΌνΈλ μ ν리μΌμ΄μ
μ νΉμ λΆλΆ λ΄μμ λ°μ΄ν°(μ: 컨ν
μ€νΈ)μ κ°μμ±κ³Ό μ κ·Όμ±μ μ μνκ³ μ μ΄νλ λ₯λ ₯μ μλ―Έν©λλ€. μ μ ν μ€μ½ν 컨ν
μΈλ¨ΌνΈκ° μμΌλ©΄, μ»΄ν¬λνΈκ° μλμΉ μκ² μ ν리μΌμ΄μ
μ λ€λ₯Έ λΆλΆμ λ°μ΄ν°λ₯Ό μ κ·Όνκ±°λ μμ νμ¬ μκΈ°μΉ μμ λμκ³Ό λλ²κΉ
νκΈ° μ΄λ €μ΄ λ¬Έμ λ‘ μ΄μ΄μ§ μ μμ΅λλ€. λκ·λͺ¨ μ΄μ»€λ¨Έμ€ μ ν리μΌμ΄μ
μμ μ¬μ©μμ μ₯λ°κ΅¬λ λ°μ΄ν°κ° μν μΆμ²μ νμνλ μ»΄ν¬λνΈμ μν΄ μλμΉ μκ² μμ λλ μν©μ μμν΄ λ³΄μΈμ. μ΄κ²μ΄ λ°λ‘ μ€μ½νκ° μ λλ‘ κ²©λ¦¬λμ§ μμμ λ λ°μν μ μλ μ νμ μΈ μμ
λλ€.
ν¨κ³Όμ μΈ μ€μ½ν 컨ν μΈλ¨ΌνΈμ μ£Όμ μ΄μ μ λ€μκ³Ό κ°μ΅λλ€:
- μ±λ₯ ν₯μ: 컨ν μ€νΈ μ λ°μ΄νΈμ λ²μλ₯Ό μ νν¨μΌλ‘μ¨, μ€μ λ‘ λ³κ²½λ λ°μ΄ν°μ μμ‘΄νμ§ μλ μ»΄ν¬λνΈμμ λΆνμν 리λ λλ§μ λ°©μ§ν μ μμ΅λλ€. μ΄λ μ±λ₯μ΄ κ°μ₯ μ€μν ν¬κ³ 볡μ‘ν μ ν리μΌμ΄μ μμ νΉν μ€μν©λλ€. μμ λ―Έλμ΄ μ ν리μΌμ΄μ μ μκ°ν΄ 보μΈμ. μλ‘μ΄ λ©μμ§κ° λμ°©νμ λ μ 체 μ¬μ©μ νλ‘ν νμ΄μ§κ° μλλΌ μ€μκ° μλ¦Όμ νμνλ μ»΄ν¬λνΈλ§ 리λ λλ§λλ©΄ λ©λλ€.
- μ½λ κ΅¬μ± κ°ν: μ€μ½ν 컨ν μΈλ¨ΌνΈλ μ½λλ₯Ό λ λͺ¨λνλκ³ μ μ§λ³΄μνκΈ° μ¬μ΄ λ°©μμΌλ‘ ꡬ쑰ννλ λ° λμμ μ€λλ€. μ»΄ν¬λνΈλ λμ± λ 립μ μ΄ λκ³ μ μ μνμ λ μμ‘΄νκ² λμ΄, κ·Έ λμμ μΆλ‘ νκ³ κ²©λ¦¬λ μνμμ ν μ€νΈνκΈ°κ° λ μ¬μμ§λλ€. μλ₯Ό λ€μ΄, μ¬μ©μ μΈμ¦, λ°μ΄ν° κ°μ Έμ€κΈ°, UI λ λλ§κ³Ό κ°μ΄ μλ‘ κ±°μ λ 립μ μΈ μ ν리μΌμ΄μ μ λ€λ₯Έ λΆλΆμ λν΄ λ³λμ λͺ¨λμ λ§λλ κ²μ μκ°ν΄ 보μΈμ.
- μΆ©λ μν κ°μ: μ ν리μΌμ΄μ μ λ€λ₯Έ λΆλΆμ 격리ν¨μΌλ‘μ¨, μ¬λ¬ μ»΄ν¬λνΈκ° λμΌν μ μ μ€μ½νλ₯Ό 곡μ ν λ λ°μν μ μλ μ΄λ¦ μΆ©λ λ° κΈ°ν λ¬Έμ μ μνμ μ΅μνν μ μμ΅λλ€. νλ‘μ νΈμ λ€λ₯Έ κΈ°λ₯μ λν΄ λ€λ₯Έ νμ΄ μμ νλ κ²μ μμν΄ λ³΄μΈμ. μ€μ½νκ° μ λλ‘ κ²©λ¦¬λμ§ μμΌλ©΄, μ°μ°ν κ°μ λ³μ μ΄λ¦μ΄λ μ»΄ν¬λνΈ μ΄λ¦μ μ¬μ©νμ¬ μΆ©λκ³Ό λ²κ·Έλ₯Ό μ λ°ν μ μμ΅λλ€.
- μ¬μ¬μ©μ± μ¦κ°: μ 격리λ μ»΄ν¬λνΈλ μ ν리μΌμ΄μ μ λ€λ₯Έ λΆλΆμ΄λ μ¬μ§μ΄ λ€λ₯Έ νλ‘μ νΈμμλ μ¬μ¬μ©νκΈ°κ° λ μ½μ΅λλ€. μ μ μνλ μ£Όλ³ νκ²½μ λν κ°μ μ μμ‘΄νμ§ μκΈ° λλ¬Έμ μλ‘μ΄ μ»¨ν μ€νΈμ μ½κ² ν΅ν©λ μ μμ΅λλ€. λ²νΌ, μ λ ₯ νλ λλ λͺ¨λ¬κ³Ό κ°μ μ¬μ¬μ© κ°λ₯ν UI μ»΄ν¬λνΈλ₯Ό λ§λλ κ²μ Reactμ κ°μ μ»΄ν¬λνΈ κΈ°λ° UI λΌμ΄λΈλ¬λ¦¬μ κ·Όλ³Έμ μΈ λͺ©ν μ€ νλμ λλ€.
React experimental_Scope 격리 κ²½κ³ μκ°
experimental_Scope 격리 κ²½κ³λ μ€μ½ν 컨ν
μΈλ¨ΌνΈλ₯Ό μΈλ°νκ² μ μ΄νλ λ©μ»€λμ¦μ μ 곡νλλ‘ μ€κ³λ React APIμ
λλ€. μ΄λ₯Ό ν΅ν΄ μ»΄ν¬λνΈ νΈλ¦¬ λ΄μ 격리λ βμ€μ½νβλ₯Ό μμ±νμ¬ μ»¨ν
μ€νΈ κ°μ΄ μ€μ½ν κ²½κ³λ₯Ό λμ΄ μ νλλ κ²μ λ°©μ§ν μ μμ΅λλ€. μ΄λ μ¬μ€μ 컨ν
μ€νΈ μ
λ°μ΄νΈμ μν₯μ μ ννλ μ₯λ²½μ λ§λ€μ΄ μ±λ₯μ κ°μ νκ³ μ½λ ꡬμ±μ λ¨μνν©λλ€. μ΄λ¦μμ μ μ μλ―μ΄ μ΄ APIλ νμ¬ μ€νμ μ΄λ©° ν₯ν React λ²μ μμ λ³κ²½λ μ μλ€λ μ μ κΈ°μ΅νλ κ²μ΄ μ€μν©λλ€. νμ§λ§ μ΄λ Reactμ μ€μ½ν κ΄λ¦¬μ λ―Έλλ₯Ό μΏλ³Ό μ μκ² νλ©°, κ·Έ μ μ¬μ μ΄μ λλ¬Έμ νμν΄ λ³Ό κ°μΉκ° μμ΅λλ€.
μ£Όμ κ°λ
- μ€μ½ν(Scope): μ€μ½νλ νΉμ 컨ν μ€νΈ κ°μ μ κ·Όν μ μλ μ»΄ν¬λνΈ νΈλ¦¬μ μμμ μ μν©λλ€. μ€μ½ν λ΄μ μ»΄ν¬λνΈλ μμ μ»΄ν¬λνΈμμ μ 곡νλ 컨ν μ€νΈμ μ κ·Όν μ μμ§λ§, 컨ν μ€νΈ κ°μ μ€μ½ν κ²½κ³λ₯Ό βλ²μ΄λ β μ μμ΅λλ€.
- 격리 κ²½κ³(Isolation Boundary):
experimental_Scopeμ»΄ν¬λνΈλ 격리 κ²½κ³ μν μ νμ¬ μ»¨ν μ€νΈ κ°μ΄ μμ μ»΄ν¬λνΈ λλ¨Έλ‘ μ νλλ κ²μ λ°©μ§ν©λλ€. μ€μ½ν λ΄μ λ°°μΉλ λͺ¨λ 컨ν μ€νΈ μ 곡μλ ν΄λΉ μ€μ½ν λ΄μ μ»΄ν¬λνΈμλ§ μν₯μ λ―ΈμΉ©λλ€. - 컨ν
μ€νΈ μ ν(Context Propagation): 컨ν
μ€νΈ κ°μ μ»΄ν¬λνΈ νΈλ¦¬λ₯Ό λ°λΌ μλλ‘ μ νλμ§λ§,
experimental_Scopeμ μν΄ μ μλ κ²½κ³ λ΄μμλ§ μ νλ©λλ€. μ€μ½ν μΈλΆμ μ»΄ν¬λνΈλ μ€μ½ν λ΄μ 컨ν μ€νΈ μ λ°μ΄νΈμ μν₯μ λ°μ§ μμ΅λλ€.
experimental_Scope 격리 κ²½κ³ κ΅¬ννκΈ°: μ€μ© κ°μ΄λ
React μ ν리μΌμ΄μ
μμ experimental_Scopeλ₯Ό μ¬μ©νλ λ°©λ²μ μ€λͺ
νκΈ° μν΄ μ€μ μμ λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€. λ¨Όμ , React νλ‘μ νΈκ° μ€μ λμ΄ μκ³ μ€νμ κΈ°λ₯μ μ§μνλ React λ²μ (μΌλ°μ μΌλ‘ μΉ΄λ리 λλ μ€νμ λΉλ)μ μ¬μ©νκ³ μλμ§ νμΈνμΈμ. React ꡬμ±μμ μ€νμ κΈ°λ₯μ νμ±νν΄μΌ ν κ°λ₯μ±μ΄ λμ΅λλ€.
μμ μλ리μ€: ν λ§ μ»¨ν μ€νΈ 격리
UIμ μ λ°μ μΈ λͺ¨μμ μ μ΄νλ μ μ ν
λ§ μ»¨ν
μ€νΈκ° μλ μ ν리μΌμ΄μ
μ΄ μλ€κ³ μμν΄ λ³΄μΈμ. νμ§λ§ μ ν리μΌμ΄μ
μ λλ¨Έμ§ λΆλΆμ μν₯μ μ£Όμ§ μκ³ νΉμ μΉμ
μλ§ λ€λ₯Έ ν
λ§λ₯Ό μ μ©νκ³ μΆμ΅λλ€. μ΄κ²μ΄ λ°λ‘ experimental_Scopeλ₯Ό μν μλ²½ν μ¬μ© μ¬λ‘μ
λλ€.
1. ν λ§ μ»¨ν μ€νΈ μ μνκΈ°
import React, { createContext, useContext, useState } from 'react';
const ThemeContext = createContext('light');
const ThemeProvider = ({ children }) => {
const [theme, setTheme] = useState('light');
const toggleTheme = () => {
setTheme(prevTheme => (prevTheme === 'light' ? 'dark' : 'light'));
};
const value = {
theme,
toggleTheme,
};
return (
{children}
);
};
const useTheme = () => useContext(ThemeContext);
export { ThemeContext, ThemeProvider, useTheme };
2. λ€λ₯Έ ν λ§λ₯Ό κ°μ§ μ»΄ν¬λνΈ λ§λ€κΈ°
import React from 'react';
import { experimental_Scope as Scope } from 'react';
import { ThemeContext, ThemeProvider, useTheme } from './ThemeContext';
const SpecialSection = () => {
return (
Special Section
This section has its own isolated theme.
);
};
export default SpecialSection;
3. μ ν리μΌμ΄μ μ ν΅ν©νκΈ°
import React from 'react';
import { ThemeProvider, useTheme } from './ThemeContext';
import SpecialSection from './SpecialSection';
const App = () => {
return (
My Application
The main application theme.
);
};
export default App;
μ΄ μμ μμ SpecialSection μ»΄ν¬λνΈλ experimental_Scopeλ‘ κ°μΈμ¬ μμ΅λλ€. μ΄λ SpecialSection λ΄μμ ThemeContextμ λν μλ‘κ³ κ²©λ¦¬λ μ€μ½νλ₯Ό μμ±ν©λλ€. experimental_Scopeμ initialContextμ initialValue propsμ μ£Όλͺ©νμΈμ. μ΄κ²λ€μ 격리λ μ€μ½ν λ΄μμ 컨ν
μ€νΈλ₯Ό μ΄κΈ°ννλ λ° μ€μν©λλ€. μ΄κ²λ€μ΄ μμΌλ©΄ SpecialSectionμ μ»΄ν¬λνΈλ€μ΄ 컨ν
μ€νΈμ μ ν μ κ·Όνμ§ λͺ»ν μλ μμ΅λλ€.
SpecialSectionμ initialValue="dark"λ₯Ό μ¬μ©νμ¬ μ΄κΈ° ν
λ§λ₯Ό 'dark'λ‘ μ€μ νλ©°, ν
λ§ ν κΈμ λ©μΈ App μ»΄ν¬λνΈμ μ μ ν
λ§μ μν₯μ μ£Όμ§ μκ³ SpecialSectionμλ§ μν₯μ λ―ΈμΉ©λλ€.
μ£Όμ λΆλΆ μ€λͺ
experimental_Scope: 격리 κ²½κ³λ₯Ό μ μνλ ν΅μ¬ μ»΄ν¬λνΈμ λλ€. 컨ν μ€νΈ κ°μ΄ μμ μ»΄ν¬λνΈ λλ¨Έλ‘ μ νλλ κ²μ λ°©μ§ν©λλ€.initialContext: 격리ν 컨ν μ€νΈλ₯Ό μ§μ ν©λλ€. μ΄λexperimental_Scopeμκ² κ²½κ³ λ΄μμ μ΄λ€ 컨ν μ€νΈλ₯Ό κ΄λ¦¬ν΄μΌ νλμ§ μλ €μ€λλ€.initialValue: 격리λ 컨ν μ€νΈμ μ΄κΈ° κ°μ μ 곡ν©λλ€. μ΄λ μ€μ½ν λ΄μμ 컨ν μ€νΈλ₯Ό μ΄κΈ°ννλ λ° μ€μν©λλ€.
experimental_Scopeμ κ³ κΈ μ¬μ© μ¬λ‘
λ¨μν ν
λ§ κ²©λ¦¬λ₯Ό λμ΄, experimental_Scopeλ λ 볡μ‘ν μλ리μ€μμ μ¬μ©λ μ μμ΅λλ€. λͺ κ°μ§ κ³ κΈ μ¬μ© μ¬λ‘λ λ€μκ³Ό κ°μ΅λλ€:
1. λ§μ΄ν¬λ‘νλ‘ νΈμλ μν€ν μ²
λ§μ΄ν¬λ‘νλ‘ νΈμλ μν€ν
μ²μμλ μ¬λ¬ νμ΄ μ ν리μΌμ΄μ
μ λ
립μ μΈ λΆλΆμ κ°λ°νκ³ λ°°ν¬ν©λλ€. experimental_Scopeλ κ° λ§μ΄ν¬λ‘νλ‘ νΈμλμ 컨ν
μ€νΈλ₯Ό 격리νμ¬ μΆ©λμ λ°©μ§νκ³ κ° λ§μ΄ν¬λ‘νλ‘ νΈμλκ° λ
립μ μΌλ‘ μλνλλ‘ λ³΄μ₯νλ λ° μ¬μ©λ μ μμ΅λλ€. μλ₯Ό λ€μ΄, μν μΉ΄νλ‘κ·Έ, μ₯λ°κ΅¬λ, κ²°μ κ²μ΄νΈμ¨μ΄μ κ°μ΄ μ¬λ¬ λ§μ΄ν¬λ‘νλ‘ νΈμλλ‘ λλ λκ·λͺ¨ μ΄μ»€λ¨Έμ€ νλ«νΌμ μκ°ν΄ 보μΈμ. κ° λ§μ΄ν¬λ‘νλ‘ νΈμλλ μ체μ μΈ μμ‘΄μ± λ° κ΅¬μ± μΈνΈλ₯Ό κ°μ§κ³ λ
립μ μΌλ‘ κ°λ° λ° λ°°ν¬λ μ μμ΅λλ€. experimental_Scopeλ ν λ§μ΄ν¬λ‘νλ‘ νΈμλμ 컨ν
μ€νΈμ μνκ° λμΌν νμ΄μ§μ λ€λ₯Έ λ§μ΄ν¬λ‘νλ‘ νΈμλλ₯Ό λ°©ν΄νμ§ μλλ‘ λ³΄μ₯νλ λ° λμμ΄ λ©λλ€.
2. A/B ν μ€ν
A/B ν
μ€ν
μ μνν λ νΉμ 컨ν
μ€νΈ κ°(μ: μ¬μ©μμκ² ν λΉλ ν
μ€νΈ κ·Έλ£Ή)μ λ°λΌ μ»΄ν¬λνΈλ κΈ°λ₯μ λ€λ₯Έ λ²μ μ λ λλ§νκ³ μΆμ μ μμ΅λλ€. experimental_Scopeλ κ° ν
μ€νΈ κ·Έλ£Ήμ 컨ν
μ€νΈλ₯Ό 격리νμ¬ κ° μ¬μ©μμκ² μ¬λ°λ₯Έ λ²μ μ μ»΄ν¬λνΈκ° λ λλ§λλλ‘ λ³΄μ₯νλ λ° μ¬μ©λ μ μμ΅λλ€. μλ₯Ό λ€μ΄, μ¬μ©μμ μΌλΆμκ² λ€λ₯Έ κ΄κ³ ν¬λ¦¬μμ΄ν°λΈλ₯Ό ν
μ€νΈνλ €λ μ¨λΌμΈ κ΄κ³ νλ«νΌμ μκ°ν΄ 보μΈμ. experimental_Scopeλ₯Ό μ¬μ©νμ¬ κ° ν
μ€νΈ κ·Έλ£Ήμ 컨ν
μ€νΈλ₯Ό 격리ν¨μΌλ‘μ¨, μ¬λ°λ₯Έ κ΄κ³ ν¬λ¦¬μμ΄ν°λΈκ° μ¬λ°λ₯Έ μ¬μ©μμκ² νμλκ³ κ° κ·Έλ£Ήμ λν΄ μμ§λ λΆμ λ°μ΄ν°κ° μ ννλλ‘ λ³΄μ₯ν μ μμ΅λλ€.
3. μ»΄ν¬λνΈ λΌμ΄λΈλ¬λ¦¬
μ»΄ν¬λνΈ λΌμ΄λΈλ¬λ¦¬λ₯Ό ꡬμΆν λ, μ»΄ν¬λνΈκ° λ
립μ μ΄κ³ μ μ 컨ν
μ€νΈ κ°μ μμ‘΄νμ§ μλλ‘ λ³΄μ₯νκ³ μΆμ κ²μ
λλ€. experimental_Scopeλ κ° μ»΄ν¬λνΈ λ΄μ 컨ν
μ€νΈλ₯Ό 격리νμ¬ μκΈ°μΉ μμ λΆμμ© μμ΄ λ€λ₯Έ μ ν리μΌμ΄μ
μμ μ»΄ν¬λνΈλ₯Ό λ μ½κ² μ¬μ¬μ©ν μ μλλ‘ λ§λλ λ° μ¬μ©λ μ μμ΅λλ€. μλ₯Ό λ€μ΄, λ²νΌ, μ
λ ₯ νλ, λͺ¨λ¬κ³Ό κ°μ μ¬μ¬μ© κ°λ₯ν μ»΄ν¬λνΈ μΈνΈλ₯Ό μ 곡νλ UI μ»΄ν¬λνΈ λΌμ΄λΈλ¬λ¦¬λ₯Ό μκ°ν΄ 보μΈμ. λΌμ΄λΈλ¬λ¦¬μ μ»΄ν¬λνΈκ° λ
립μ μ΄κ³ νΈμ€νΈ μ ν리μΌμ΄μ
μ μ μ 컨ν
μ€νΈ κ°μ μμ‘΄νμ§ μλλ‘ νκ³ μΆμ κ²μ
λλ€. experimental_Scopeλ κ° μ»΄ν¬λνΈ λ΄μ 컨ν
μ€νΈλ₯Ό 격리νμ¬ μκΈ°μΉ μμ λΆμμ© μμ΄ λ€λ₯Έ μ ν리μΌμ΄μ
μμ μ»΄ν¬λνΈλ₯Ό λ μ½κ² μ¬μ¬μ©ν μ μλλ‘ λ§λλλ€.
4. 컨ν μ€νΈ μ λ°μ΄νΈμ λν μΈλΆνλ μ μ΄
κΉκ² μ€μ²©λ μ»΄ν¬λνΈκ° 컨ν
μ€νΈ κ°μ ꡬλ
νμ§λ§, 컨ν
μ€νΈμ νΉμ λΆλΆμ΄ λ³κ²½λ λλ§ λ¦¬λ λλ§ν΄μΌ νλ μλ리μ€λ₯Ό μμν΄ λ³΄μΈμ. experimental_Scopeκ° μμΌλ©΄, 컨ν
μ€νΈμ κ΄λ ¨ λΆλΆμ΄ λ³κ²½λμ§ μμλλΌλ 컨ν
μ€νΈμ λν λͺ¨λ μ
λ°μ΄νΈκ° ν΄λΉ μ»΄ν¬λνΈμ 리λ λλ§μ νΈλ¦¬κ±°ν κ²μ
λλ€. experimental_Scopeλ₯Ό μ¬μ©νλ©΄ 컨ν
μ€νΈλ₯Ό 격리νκ³ νμν λλ§ λ¦¬λ λλ§μ νΈλ¦¬κ±°νμ¬ μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€. λ€λ₯Έ μ°¨νΈμ ν
μ΄λΈμ΄ λ°μ΄ν°μ λ€λ₯Έ μΈ‘λ©΄μ νμνλ 볡μ‘ν λ°μ΄ν° μκ°ν λμ보λλ₯Ό μκ°ν΄ 보μΈμ. λ°μ΄ν° λ³κ²½μ μν₯μ λ°λ μ°¨νΈλ ν
μ΄λΈλ§ 리λ λλ§λμ΄μΌ νλ©°, λμ보λμ λλ¨Έμ§ λΆλΆμ λ³κ²½λμ§ μμ μνλ‘ μ μ§λ μ μμ΅λλ€. experimental_Scopeλ₯Ό μ¬μ©νλ©΄ 컨ν
μ€νΈλ₯Ό 격리νκ³ νμν λλ§ λ¦¬λ λλ§μ νΈλ¦¬κ±°νμ¬ μ±λ₯μ κ°μ νκ³ μνν μ¬μ©μ κ²½νμ μ μ§ν μ μμ΅λλ€.
experimental_Scope μ¬μ©μ μν λͺ¨λ² μ¬λ‘
experimental_Scopeλ₯Ό ν¨κ³Όμ μΌλ‘ μ¬μ©νλ €λ©΄ λ€μ λͺ¨λ² μ¬λ‘λ₯Ό κ³ λ €νμΈμ:
- μ€μ½ν κ²½κ³ μλ³νκΈ°: μ ν리μΌμ΄μ
μ μ μ€νκ² λΆμνμ¬ μ€μ½ν κ²©λ¦¬κ° κ°μ₯ ν° μ΄μ μ μ 곡ν μ μλ μμμ μλ³νμΈμ. κ³ μ ν 컨ν
μ€νΈ μꡬ μ¬νμ΄ μκ±°λ λΆνμν 리λ λλ§μ΄ λ°μνκΈ° μ¬μ΄ μ»΄ν¬λνΈλ₯Ό μ°Ύμ보μΈμ. μλ‘μ΄ κΈ°λ₯μ μ€κ³ν λ, ν΄λΉ κΈ°λ₯ λ΄μμ μ¬μ©λ λ°μ΄ν°μ μ»΄ν¬λνΈ κ°μ 곡μ λλ λ°©μμ μκ°ν΄ 보μΈμ. λ°μ΄ν°κ° ν΄λΉ κΈ°λ₯μλ§ κ΅νλκ³ λλ¨Έμ§ μ ν리μΌμ΄μ
κ³Ό 곡μ ν νμκ° μλ€λ©΄
experimental_Scopeλ₯Ό μ¬μ©νμ¬ μ»¨ν μ€νΈλ₯Ό 격리νλ κ²μ κ³ λ €ν΄ λ³΄μΈμ. - 컨ν
μ€νΈ κ° μ΄κΈ°ννκΈ°: 격리λ 컨ν
μ€νΈκ° μ¬λ°λ₯΄κ² μ΄κΈ°νλλλ‘
experimental_Scopeμ»΄ν¬λνΈμ νμinitialContextμinitialValuepropsλ₯Ό μ 곡νμΈμ. μ΄λ¬ν propsλ₯Ό μλ΅νλ©΄ μκΈ°μΉ μμ λμκ³Ό μ€λ₯κ° λ°μν μ μμ΅λλ€. μ€μ½ν λ΄ μ»΄ν¬λνΈμ μꡬ μ¬νμ λ°λΌ 컨ν μ€νΈμ μ μ ν μ΄κΈ° κ°μ μ νν΄μΌ ν©λλ€. μ΄κΈ° 컨ν μ€νΈ κ°μ μΌκ΄λ λͺ λͺ κ·μΉμ μ¬μ©νμ¬ κ°μ λͺ©μ κ³Ό μλ―Έλ₯Ό μ½κ² μ΄ν΄ν μ μλλ‘ νλ κ²μ΄ μ’μ΅λλ€. - κ³Όλν μ¬μ© νΌνκΈ°:
experimental_Scopeλ κ°λ ₯ν μ μμ§λ§, κ³Όλνκ² μ¬μ©νλ©΄ λΆνμν 볡μ‘μ±μ μ΄λνκ³ μ½λλ₯Ό μ΄ν΄νκΈ° μ΄λ ΅κ² λ§λ€ μ μμ΅λλ€. μ€μ½νλ₯Ό 격리νκ³ μ±λ₯μ κ°μ νκΈ° μν΄ μ λ§λ‘ νμν λλ§ μ¬μ©νμΈμ. 컨ν μ€νΈμ μνκ° μ 체 μ ν리μΌμ΄μ μμ μ κ΄λ¦¬λκ³ μλ€λ©΄ νΉμ μμμμ μ€μ½νλ₯Ό 격리ν νμκ° μμ μλ μμ΅λλ€. ν΅μ¬μ μ½λ 격리μ μ½λ 볡μ‘μ± μ¬μ΄μ μ¬λ°λ₯Έ κ· νμ μ°Ύμ, μ ν리μΌμ΄μ μ μ§ κ΄λ¦¬λ₯Ό λ μ΄λ ΅κ² λ§λ€μ§ μμΌλ©΄μ μ±λ₯μ κ°μ νλ κ²μ λλ€. - μ² μ νκ² ν
μ€νΈνκΈ°:
experimental_Scopeλ₯Ό λμ ν νμλ νμ μ ν리μΌμ΄μ μ μ² μ ν ν μ€νΈνμ¬ μμλλ‘ μλνλμ§, μκΈ°μΉ μμ λΆμμ©μ μλμ§ νμΈνμΈμ. μ΄λ APIκ° μ€νμ μ΄κ³ λ³κ²½λ μ μκΈ° λλ¬Έμ νΉν μ€μν©λλ€. λ¨μ ν μ€νΈμ ν΅ν© ν μ€νΈλ₯Ό μμ±νμ¬ κ²©λ¦¬λ μ€μ½νμ κΈ°λ₯μ κ²μ¦νμΈμ. μ€μ½νκ° λͺ¨λ μν©μμ μμλλ‘ μλνλμ§ νμΈνκΈ° μν΄ μ μμ μΈ κ²½μ°μ μμΈμ μΈ κ²½μ° λͺ¨λλ₯Ό ν μ€νΈν΄μΌ ν©λλ€. - μ½λ λ¬ΈμννκΈ°:
experimental_Scopeλ₯Ό μ¬μ©νλ μ΄μ μ μ¬μ© λ°©λ²μ μ€λͺ νκΈ° μν΄ μ½λλ₯Ό λͺ ννκ² λ¬ΈμννμΈμ. μ΄λ λ€λ₯Έ κ°λ°μλ€μ΄ μ½λλ₯Ό μ΄ν΄νκ³ λ―Έλμ μ μ§λ³΄μνλ λ° λμμ΄ λ κ²μ λλ€. μ£Όμκ³Ό μ΄λ Έν μ΄μ μ μ¬μ©νμ¬ μ€μ½νμ λͺ©μ , μ΄κΈ° 컨ν μ€νΈ κ°, μ€μ½ν λ΄ μ»΄ν¬λνΈμ μμ λμμ μ€λͺ νμΈμ. λ€λ₯Έ κ°λ°μλ€μ΄ κ°λ μ μ΄ν΄νκ³ μμ μ νλ‘μ νΈμ μ μ©νλ λ° λμμ΄ λλλ‘ λ€λ₯Έ μν©μμ μ€μ½νλ₯Ό μ¬μ©νλ λ°©λ²μ λν μμ λ₯Ό μ 곡νμΈμ.
μ μ¬μ μΈ λ¨μ κ³Ό κ³ λ € μ¬ν
μ΄μ μλ λΆκ΅¬νκ³ experimental_Scopeμλ κ³ λ €ν΄μΌ ν λͺ κ°μ§ μ μ¬μ μΈ λ¨μ μ΄ μμ΅λλ€:
- 볡μ‘μ±:
experimental_Scopeλ₯Ό λμ νλ©΄ μ½λλ² μ΄μ€μ 볡μ‘μ±μ΄ μΆκ°λ μ μμΌλ©°, νΉν μ€μ½ν 컨ν μΈλ¨ΌνΈ κ°λ μ μ΅μνμ§ μμ κ²½μ° λμ± κ·Έλ μ΅λλ€. λΆνμν 볡μ‘μ±μ λμ νμ§ μμΌλ €λ©΄ κΈ°λ³Έ μμΉμ μ΄ν΄νκ³ κ΅¬νμ μ μ€νκ² κ³ννλ κ²μ΄ μ€μν©λλ€. μ€μ½ν κ²½κ³λ₯Ό μ μ€νκ² κ³ λ €νκ³ κ΄λ¦¬ν΄μΌ ν νμμ±μ κ°λ° κ³Όμ μμ μΆκ°μ μΈ μ€κ³ κ³ λ € μ¬νμ μꡬν μ μμΌλ©°, μ΄λ μ ν리μΌμ΄μ μν€ν μ²μ 볡μ‘μ±μ μ¦κ°μν¬ μ μμ΅λλ€. - μ€νμ νΉμ±: μ€νμ APIλ‘μ
experimental_Scopeλ ν₯ν React λ²μ μμ λ³κ²½λκ±°λ μ κ±°λ μ μμ΅λλ€. μ΄λ APIκ° λ³κ²½λ κ²½μ° μ½λλ₯Ό 리ν©ν°λ§ν μ€λΉκ° λμ΄ μμ΄μΌ ν¨μ μλ―Έν©λλ€. λ³κ²½ λλ μ κ±°λ μ¬κ°ν λ¬Έμ λ₯Ό μΌμΌν€κ³ μ μ¬μ μΌλ‘ μ ν리μΌμ΄μ μ μμμν¬ μ μμ΅λλ€. λ°λΌμ νΉν νλ‘λμ νκ²½μμexperimental_Scopeμ¬μ©μ΄ μνμ κ°μν κ°μΉκ° μλμ§ μ μ€νκ² νκ°ν΄μΌ ν©λλ€. - λλ²κΉ
μ μ΄λ €μ: μ€μ½ν 컨ν
μΈλ¨ΌνΈμ κ΄λ ¨λ λ¬Έμ λ₯Ό λλ²κΉ
νλ κ²μ μ΄λ €μΈ μ μμΌλ©°, νΉν
experimental_Scopeμ μλ λ°©μμ μ΅μνμ§ μμ κ²½μ° λμ± κ·Έλ μ΅λλ€. λλ²κΉ λꡬμ κΈ°μ μ μ¬μ©νμ¬ μ»¨ν μ€νΈ κ°μ΄ μ»΄ν¬λνΈ νΈλ¦¬λ₯Ό ν΅ν΄ μ΄λ»κ² μ νλλμ§ μ΄ν΄νλ κ²μ΄ μ€μν©λλ€.experimental_Scopeλ₯Ό μ¬μ©νλ©΄ λ°μ΄ν°μ νλ¦μ μΆμ νκ³ λ²κ·Έμ μμΈμ νμ νκΈ°κ° λ μ΄λ €μμ§ μ μμΌλ©°, νΉν μ ν리μΌμ΄μ κ΅¬μ‘°κ° λ³΅μ‘ν λ κ·Έλ μ΅λλ€. - νμ΅ κ³‘μ : κ°λ°μλ μλ‘μ΄ APIμ κ°λ
μ λ°°μ°κ³ μ΄ν΄ν΄μΌ νλ―λ‘ μκ°κ³Ό λ
Έλ ₯μ΄ νμν μ μμ΅λλ€. νμ΄
experimental_Scopeλ₯Ό ν¨κ³Όμ μΌλ‘ μ¬μ©νλ λ°©λ²μ λν΄ μ μ ν κ΅μ‘λ°μλμ§ νμΈνμΈμ. μ΄ APIμ μ΅μνμ§ μμ κ°λ°μμκ²λ νμ΅ κ³‘μ μ΄ μμ κ²μΌλ‘ μμν΄μΌ ν©λλ€.
experimental_Scopeμ λμ
μ€νμ API μ¬μ©μ μ£Όμ νλ€λ©΄ Reactμμ μ€μ½ν 컨ν μΈλ¨ΌνΈμ λν λμμ μΈ μ κ·Ό λ°©μμ΄ μμ΅λλ€:
- μ»΄ν¬μ§μ (Composition): μ»΄ν¬μ§μ μ μ¬μ©νμ¬ λ°μ΄ν°μ λ‘μ§μ μ»΄ν¬λνΈ νΈλ¦¬λ₯Ό λ°λΌ λͺ μμ μΌλ‘ μ λ¬νμΈμ. μ΄λ 컨ν μ€νΈμ νμμ±μ νΌνκ³ λ°μ΄ν° νλ¦μ λν λ λ§μ μ μ΄κΆμ μ 곡ν©λλ€. μ»΄ν¬λνΈ νΈλ¦¬λ₯Ό λ°λΌ λ°μ΄ν°λ₯Ό μ λ¬νλ©΄ κ° μ»΄ν¬λνΈκ° νμν λ°μ΄ν°λ§ λ°λλ‘ λ³΄μ₯νμ¬ λΆνμν 리λ λλ§μ μνμ μ€μ΄κ³ μ±λ₯μ ν₯μμν΅λλ€.
- λ λ νλ‘(Render Props): λ λ νλ‘μ μ¬μ©νμ¬ μ»΄ν¬λνΈ κ°μ λ‘μ§κ³Ό λ°μ΄ν°λ₯Ό 곡μ νμΈμ. μ΄λ₯Ό ν΅ν΄ λ€λ₯Έ λ°μ΄ν°μ λμμΌλ‘ 컀μ€ν°λ§μ΄μ¦ν μ μλ μ¬μ¬μ© κ°λ₯ν μ»΄ν¬λνΈλ₯Ό λ§λ€ μ μμ΅λλ€. μ»΄ν¬λνΈμ 컀μ€ν λ λλ§ λ‘μ§μ μ£Όμ ν λ°©λ²μ μ 곡νμ¬ λ ν° μ μ°μ±κ³Ό μ¬μ¬μ©μ±μ νμ©ν©λλ€. μ΄ ν¨ν΄μ κ³ μ°¨ μ»΄ν¬λνΈ(HOC) ν¨ν΄κ³Ό μ μ¬νμ§λ§ μ±λ₯ λ° νμ μμ μ± μΈ‘λ©΄μμ λͺ κ°μ§ μ΄μ μ΄ μμ΅λλ€.
- 컀μ€ν ν (Custom Hooks): 컀μ€ν ν μ λ§λ€μ΄ μνμ λ‘μ§μ μΊ‘μννμΈμ. μ΄λ₯Ό ν΅ν΄ μ μ 컨ν μ€νΈμ μμ‘΄νμ§ μκ³ μ¬λ¬ μ»΄ν¬λνΈμμ λμΌν μνμ λ‘μ§μ μ¬μ¬μ©ν μ μμ΅λλ€. 컀μ€ν ν λ΄μ μνμ λ‘μ§μ μΊ‘μννλ©΄ μ½λμ λͺ¨λμ±κ³Ό ν μ€νΈ μ©μ΄μ±μ΄ ν₯μλ©λλ€. λν μ»΄ν¬λνΈμμ 볡μ‘ν λΉμ¦λμ€ λ‘μ§μ μΆμΆνμ¬ λ μ½κ² μ΄ν΄νκ³ μ μ§λ³΄μν μ μκ² ν΄μ€λλ€.
- μν κ΄λ¦¬ λΌμ΄λΈλ¬λ¦¬(Redux, Zustand, Jotai): μ΄λ¬ν λΌμ΄λΈλ¬λ¦¬λ μ ν리μΌμ΄μ
μ λ°μ΄ν° μ€μ½νμ νλ¦μ μ μ΄νλ λ° λμμ΄ λλ μ μ μν κ΄λ¦¬ μ루μ
μ μ 곡ν©λλ€. λ κ²¬κ³ νκ³ νμ₯ κ°λ₯ν μ루μ
μ΄ νμν κ²½μ°
experimental_Scopeμ μ’μ λμμ΄ λ μ μμ΅λλ€. μ ν리μΌμ΄μ μ μνλ₯Ό κ΄λ¦¬νκΈ° μν μ€μ μ§μ€μ μ μ₯μμ ν¨κ» μ‘μ μ λμ€ν¨μΉνκ³ μν λ³κ²½μ ꡬλ νλ λ©μ»€λμ¦μ μ 곡ν©λλ€. μ΄λ 볡μ‘ν μν κ΄λ¦¬λ₯Ό λ¨μννκ³ prop drillingμ νμμ±μ μ€μ¬μ€λλ€.
κ²°λ‘
Reactμ experimental_Scope 격리 κ²½κ³λ 볡μ‘ν React μ ν리μΌμ΄μ
μμ μ€μ½ν 컨ν
μΈλ¨ΌνΈλ₯Ό κ΄λ¦¬νκΈ° μν κ°λ ₯ν λ©μ»€λμ¦μ μ 곡ν©λλ€. 격리λ μ€μ½νλ₯Ό μμ±ν¨μΌλ‘μ¨ μ±λ₯μ κ°μ νκ³ , μ½λ ꡬμ±μ κ°ννλ©°, μΆ©λ μνμ μ€μΌ μ μμ΅λλ€. μ΄ APIλ μμ§ μ€νμ μ΄μ§λ§, κ·Έ μ μ¬μ μΈ μ΄μ λλ¬Έμ νμν΄ λ³Ό κ°μΉκ° μμ΅λλ€. νλ‘μ νΈμ experimental_Scopeλ₯Ό λμ
νκΈ° μ μ μ μ¬μ μΈ λ¨μ κ³Ό λμμ μ μ€νκ² κ³ λ €νλ κ²μ μμ§ λ§μΈμ. Reactκ° κ³μ μ§νν¨μ λ°λΌ, μ€μ½ν κ΄λ¦¬ λ° μ»¨ν
μ€νΈ μ μ΄μμ λ λ§μ λ°μ μ κΈ°λν μ μμΌλ©°, μ΄λ μ μΈκ³ μ¬μ©μλ₯Ό μν κ²¬κ³ νκ³ μ μ§λ³΄μ κ°λ₯ν μ ν리μΌμ΄μ
μ λ μ½κ² ꡬμΆν μ μκ² ν΄μ€ κ²μ
λλ€.
κΆκ·Ήμ μΌλ‘, μ€μ½ν κ΄λ¦¬μ λν μ΅μμ μ κ·Ό λ°©μμ μ ν리μΌμ΄μ μ νΉμ μꡬ μ¬νμ λ°λΌ λ€λ¦ λλ€. λ€μν μ κ·Ό λ°©μ κ°μ μ₯λ¨μ μ μ μ€νκ² κ³ λ €νκ³ νλ‘μ νΈμ μꡬ μ¬νκ³Ό νμ μ λ¬Έ μ§μμ κ°μ₯ μ ν©ν κ²μ μ ννμΈμ. μ ν리μΌμ΄μ μ΄ μ±μ₯ν¨μ λ°λΌ μ½λλ₯Ό μ κΈ°μ μΌλ‘ κ²ν νκ³ λ¦¬ν©ν°λ§νμ¬ μ μ§λ³΄μ κ°λ₯νκ³ νμ₯ κ°λ₯νκ² μ μ§νμΈμ.